Advertising content delivery

ABSTRACT

Programming media and advertising media may be presented in a manner that approximates or equals a target ratio. In one implementation, a total temporal length of one or more programming media segments is accessed after the user has selected the programming media segments. One or more advertising media segments are then selected. The advertising media segments have a total length that is based on the total temporal length of the programming media segments and a target temporal ratio between programming media and advertising media. The client system may present the one or more selected advertising media segments.

CLAIM OF PRIORITY

This application claims priority under 35 USC §119(e) to U.S.Provisional Patent Application Ser. No. 60/601,655, filed on Aug. 16,2004, which is hereby incorporated by reference.

TECHNICAL FIELD

This description relates to providing advertising content.

BACKGROUND

Dynamic content, such as audio and/or visual content, may be deliveredand presented to users across packet-based networks, such as theInternet. Providers of this content also may desire to coupleadvertising with the dynamic content. Static advertising such as banneradvertising on the Internet has been provided. Dynamic advertising alsomay be provided.

SUMMARY

One metric for characterizing the amount of dynamic advertising a userreceives is a ratio of time a user receives dynamic advertising to thetime the user receives programming media content. The describedtechniques may allow for a target ratio to be maintained as a userself-selects programming media content. For example, to maintain aparticular ratio, advertising media content might only be associatedwith every third piece of programming media content, assuming a fixedand common length for all programming and advertising media content, andassuming all programming and advertising media content is presented tothe user in its entirety. In less constrained situations, it may bedifficult to define in advance the length of advertising media contentthat should be associated with particular pieces of programming mediacontent in order to maintain a particular ratio between the programmingmedia content and the advertising media content that a user ispresented. This is because the different pieces of programming mediacontent available to the user may be of different lengths, and becausethe user is self-selecting such segments, the total length ofprogramming media content that the user will select is not knownbeforehand. However, providers of the content may desire the ability todefine the ratio because, when a significant portion of the contentpresented to a user is advertising media content, the user may decide tostop viewing content from that provider, thereby decreasing advertisingand/or other revenues.

Accordingly, in one aspect, a user may select one or more programmingmedia segments for presentation by a client system. A total programmingtemporal length of the programming media segments is accessed after theuser has selected the programming media segments. Advertising mediasegments are selected and have a total advertising temporal length. Thetotal advertising temporal length is based on the total programmingtemporal length and a target temporal ratio between programming mediaand advertising media. The client system is enabled to present theselected advertising media segments.

Implementations may include one or more of the following features. Forexample, the total advertising temporal length may be determined basedon the total programming temporal length and the target temporal ratioand may be determined such that a ratio between the total advertisingtemporal length and the total programming temporal length issubstantially equal to the target temporal ratio.

Accessing the total programming temporal length may include receivingstate information from the client system; and tracking temporal lengthsof the programming media segments based on the state information.Accessing the total programming temporal length may include determiningthe total programming temporal length.

The target temporal ratio may be accessed based on, e.g., a locationfrom which the one or more programming media segments was selected bythe user, an identification of the one or more programming mediasegments selected by the user, an owner of the one or more programmingmedia segments selected by the user, a category of the one or moreprogramming media segments, time of day, and/or which template wasaccessed previously for the user.

A template may be accessed to access the target temporal ration. Thetemplate may be accessed based on a combination of a category of theprogramming media segments and a location from which the programmingmedia segments was selected by the user. The template may be accessedbased on a combination of an owner of the programming media segments anda location from which the programming media segments was selected by theuser. The location from which the programming media segments wasselected may include a location in a hierarchically arranged website.

Information may be received from the client system regarding a temporallength of a programming media segment the client system has presentedwithin a past time frame or a temporal length of a programming mediasegment that will be presented by the client system.

The advertising media segments may be selected from advertising mediasegments that satisfy a set of business rules regarding at least oneadvertising campaign.

The client system may be provided with information that allows theclient system to retrieve and present the advertising media segments.The information may include location information for the one or moreselected advertising media segments. The one or more selectedadvertising media segments may be retrieved and transmitted to theclient system.

The client system may present the advertising media segments and theprogramming media segments in a sequential manner. The user mayexplicitly or implicitly select the programming media segments

The selected advertising media segments may be previews, teasers,branding, or advertisements.

In another aspect, programming audio-visual content and advertisingaudio-visual content is provided in accordance with a target temporalratio. An indication of one or more programming audio-visual segmentsselected from a website by a user for presentation on a client system isreceived and a total programming temporal length of the programmingaudio-visual segments is accessed. A target temporal ratio betweenprogramming media and advertising media is accessed and a totaladvertising temporal length is determined based on the total programmingtemporal length and the target temporal ratio. One or more advertisingaudio-visual segments are selected. The advertising audio-visualsegments have, either alone or in combination with advertisingaudio-visual segments previously presented by the client system, thetotal advertising temporal length. The client system is enabled topresent the advertising media segments such that the client systempresents the selected advertising media segments and the programmingmedia segments in a sequential manner.

Implementations of the described techniques may include hardware, amethod or process, and computer software on a computer-accessiblemedium.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a system that presents programming mediaand advertising media on a client system with a ratio approximating orequaling a target temporal ratio.

FIG. 2 shows an example of a website hierarchy.

FIGS. 3A-3C show an example of a stand-alone media client applicationdisplaying media pages.

FIG. 4 shows an example of a table containing state information aboutthe content consumed by a user.

FIGS. 5A-5C show an example of interfaces for use with a template editoralong with examples of templates.

FIG. 6 shows a process that may be performed by components of the systemof FIG. 1 to present programming media and advertising media on a clientsystem with a ratio approximating or equaling a target temporal ratio.

FIG. 7 illustrates communications of various components of the systemshown in FIG. 1 for one implementation.

FIG. 8 illustrates communications of various components of the systemshown in FIG. 1 for a second implementation.

DETAILED DESCRIPTION

Referring to FIG. 1, a system 100 presents programming media andadvertising media on a client system 102, with a ratio between theprogramming media and the advertising media approximating or equaling atarget temporal ratio. System 100 includes a client system 102 that cancommunicate with a server computer 106 over a packet-switched network104, such as the Internet. System 100 also includes a template stateserver 112, a template database 114, a scheduler 116, a template editor118, a programming media source 108 and an advertising media source 110.

Each of the components of system 100 (for example, client system 102,server 106, template state server 112, a template database 114, ascheduler 116, a template editor 118, a programming media source 108 andan advertising media source 110) may be implemented using, for example,a general-purpose computer capable of responding to and executinginstructions in a defined manner, a personal computer, a special-purposecomputer, a workstation, a server, a device, a component, or otherequipment or some combination thereof capable of responding to andexecuting instructions. These components may receive instructions from,for example, a software application, a program, a piece of code, adevice, a computer, a computer system, or a combination thereof, whichindependently or collectively direct operations, as described herein.The instructions may be embodied permanently or temporarily in any typeof machine, component, equipment, storage medium, or propagated signal.

Packet switched network 104 may include Wide Area Networks (WANs), LocalArea Networks (LANs), analog or digital wired and wireless telephonenetworks (for example, a Public Switched Telephone Network (PSTN), anIntegrated Services Digital Network (ISDN), or a Digital Subscriber Line(xDSL)), or any other wired or wireless network including, for example,a corporate LAN. Network 104 may include multiple networks orsubnetworks, each of which may include, for example, a wired or wirelessdata pathway.

In addition, while illustrated as separate components, any combinationof client system 102, template state server 112, template database 114,scheduler 116, template editor 118, media sources 108 and 110, and/orweb server 106 may be implemented on a single computing device orcluster of computing devices.

In general, client system 102 communicates with server 106 to obtain amedia page, from which a user can select programming media forpresentation by client system 102. The client system 102 receives theselected programming media from programming media source 108 and presentit to the user. Client system 102 also may present advertising mediafrom advertising media source 110.

Client system 102 communicates with template state server 112 todetermine specific advertising media to present from advertising mediasource 110. Template state server 112 determines or accesses a targetratio between advertising media and programming media by, for example,accessing a template (which may be created by template editor 118)stored in template database 118. Template state server 112 alsodetermines or accesses the temporal length of programming media that hasbeen or will be presented by the client system 102 based, for example,on communications from client system 102. Using this information,template state server 112 determines the temporal length of advertisingmedia that results in the ratio between programming media andadvertising media presented by client system 102 to approximate or equalthe target ratio.

Template state server 112 communicates the determined temporal length toscheduler 116. Scheduler 116 then selects a specific piece ofadvertising media that has the determined temporal length and identifiesthe specific piece of advertising media to template state server 112.Template state server 112 then causes client system 102 to present thespecific piece of advertising media.

Client system 102 may execute a hypertext transfer protocol (HTTP) basedweb browser that presents media pages, such as hypertext markup language(HTML) or other markup language web pages. A media client applicationmay be embedded in one or more of the web pages presented by the webbrowser. The media client application presents dynamic content, such asaudio content or video content, to a user through, for example, visual,auditory, or tactile presentation devices. The media client applicationalso may implement the HTTP protocol to request the dynamic content.

Alternatively, the media client application may be a stand-aloneapplication that presents both static content, such as the staticportion of web pages, and the dynamic content such as audio or videocontent. Stand-alone media client application also may implement HTTP torequest the static content and/or the dynamic content. Examples of amedia client application include Windows Media Player from MicrosoftCorp. of Redmond, Wash. and RealPlayer from RealNetworks of Seattle,Wash., both of which can be stand-alone or embedded into a web page.

Server computer 106 may execute HTTP server software to respond to datarequests from an HTTP-based web browser and/or an HTTP-based mediaclient application executing at client system 102. In response to a datarequest from the web browser or media client application, servercomputer 106 provides a media page, for example a web page, forpresentation by the web browser or media client application.

The web page presents one or more selections of programming media, thatis, for example, dynamic content such as audio and/or video content, forpresentation by the media client application and includes information(for example, a uniform resource locator (a URL)) that allows the mediaclient application to form a request for the audio and/or video content.The audio and/or video content may be in the form of continuous oron-demand media streams.

The web page may be part of a website that includes a number of webpages that present selections of audio and/or video content forpresentation by the media client application. The website may bearranged in a hierarchical fashion, as shown and described below in FIG.2, such that the different web pages are organized into topical orthemed sections, with lower levels further dividing the sections.

FIG. 2 shows an example of a hierarchy 200 of a website that may beprovided by server 106. At the top of the website hierarchy is the homepage 210. Home page 210 contains links to web pages directed todifferent topics or themes of the website. For example, home page 210includes links to a web page 212 directed to movies, a web page 214directed to music, and a web page 216 directed to current events. Eachof these web pages further includes links to web pages directed tosub-topics or sub-themes of the topic or the theme associated with thehigher level web page. For instance, the movies web page 212 containslinks to a web page 212 a directed to action movies, a web page 212 bdirected to comedies, and a web page 212 c directed to science fictionmovies. The music web page 214 includes links directed to a web page 214a directed to alternative music, a web page 214 b directed to rockmusic, and a web page 214 c directed to R&B music. Likewise, the currentevents web page 216 includes links to a web page 216 a directed to worldnews, a web page 216 b directed to national news, and a web page 216 cdirected to top news stories.

Each of the web pages may include audio and/or video content selections.The selections in any given page are related to the topic/sub-topic towhich the web page is directed. For instance, home web page 210 mayinclude selections for audio and/or video content related to any of thetopics of the website, e.g., movies, music, or news. The movies web page212 then may include audio and/or video selections related to moviesacross any genre/category, while the action movies web page 212 aincludes selections of audio and/or video content related only to actionmovies. The web pages of higher level topics may include only a fewselections of audio and/or video content related to each of thesub-topics, while the lower level web pages may present selections forall of the audio and/or video content available for that sub-topic.

Other hierarchical organizations are possible. For example, a newsstation may have a website whose hierarchy breaks down into news relatedtopics, such as headline news, local news, world news, sports, talkshows, etc. Furthermore, a website may be maintained for a number ofmedia outlets and may have a hierarchical organization that breaks downinto the various media outlets, and then further breaks down intovarious topics offered by those media outlets. In addition, a providerof online content may have its own “channels” of specialized content,and these channels may be included in the hierarchy. For instance,America Online offers a “channel” to subscribers referred to as “AOLSessions,” which provides unique performances by various artists.

FIGS. 3A-3C show an example of a stand-alone media client application300 displaying media pages, such as web pages, corresponding to ahierarchical site such as the one described with respect to FIG. 2.Referring to FIG. 3A, media client application 300 presents a home webpage 310 that includes links 302-308 that correspond to different topicsor themes covered by the website and which link to a corresponding webpage for each topic. Link 302 links to home page 310. Link 304 links tomusic web page 314 (shown in FIG. 3B below), link 306 links to moviesweb page, and link 308 links to a current events web page. When a userselects one of the links 302-308, the web page corresponding to thetopic or theme is presented by media client application 300. Home webpage 310 also includes links 320 and 322 that link to web pages indifferent sub-topical or sub-theme areas of the website. Link 320 pointsto a web page for “today's music hits” (not shown) located,hierarchically, underneath the music web page. Link 322 points to a webpage located, hierarchically, underneath current events web page. Whilenot shown, home web page 310 may contain some selections for audioand/or video content related to one or more of the topics/themes orsub-topics/sub-themes covered by the website.

Referring to FIG. 3B, when a user selects music link 304 in home webpage 310, a music web page 314 is displayed. Music web page 314 includeslinks 324-328 that provide selections for audio and/or video contentrelated to some sub-topics/sub-themes of music. When a user selects oneof links 324-328, the corresponding audio and/or video is presented tothe user by media client application 300. Music web page 314 alsoincludes links 330 that link to sub-topic or sub-theme web pages underthe music topic/theme in the website.

Referring to FIG. 3C, when a user selects the “Alternative” link fromlinks 330, an alternative music web page 314 a is displayed. Alternativemusic web page 314 a contains selections 332 of audio and/or videocontent for the sub-topic/sub-theme “alternative music.” Similar tolinks 324-328, when a user selects one of links 332, the correspondingaudio and/or video is presented to the user by media client application300. Alternative music web page 314 a also includes links 334 tosub-topics/sub-themes underneath the alternative music topic orcategory. The particular sub-topics/sub-themes shown correspond to bands(Blink-182, The Darkness, The Secret Machines, The Strokes, The Vines,and Weezer are shown) whose music fits within the topic/theme“alternative music.”

Referring again to FIG. 1, the media client application receivesprogramming media for presentation from programming media source 108.Programming media is the editorial content that the user desires to havepresented and is generally represented by the selections in the web page(such as selections 332 in FIG. 3C above). Programming media source 108may execute HTTP server software to respond to requests for programmingmedia from an HTTP-based media client application. In response to suchrequests, programming media source 108 provides the requestedprogramming media to the media client application for presentation. Arequest for programming media may be initiated by the media clientapplication when a user selects one of the selections of programmingmedia content provided by a web page, such as one of the links 334 shownin FIG. 3C.

The media client application receives advertising media for presentationfrom advertising media source 110. Advertising media is generally anyother media besides the editorial content and is typically media thatpromotes particular services or goods. Advertising media may be, forexample, previews for programming media other than the selected mediabeing offered in the future (that is, previews), previews for theselected programming media (that is, teasers), an indication of thesource of programming media (that is, branding), or promotions to buy orotherwise acquire specific products or services (that is,advertisements). Similar to programming media source 108, advertisingmedia source 110 may execute HTTP server software to respond to requestsfor advertising media. In response to such requests, advertising mediasource 110 provides the requested programming media to the applicationthat requested the advertising media. A request for programming mediamay be initiated by the media client application or the template stateserver 112 as described below.

Generally, template state server 112 communicates with client system102, template database 114, and scheduler 116 so that the temporal ratiobetween programming media and advertising media presented by the clientsystem 102 approximates or equals a target temporal ratio. Typically, asusers consume programming media from a web page or website in general,they are also sent advertising media, such as previews, branding, oradvertisements. For these users, the programmer of the web page orwebsite may desire to allocate the time between advertising media andprogramming media as a ratio, for example, 20 minutes of programmingmedia to 1 minute of advertising media.

Template state server 112, template database 114, and scheduler 116 maycooperate to control such a ratio for a single website, multiplewebsites that are operated by a single entity or otherwise related,and/or multiple independently operated websites. As previouslydescribed, template state server 112 generally accesses or determines atarget ratio from, for example, a template (which may be created withtemplate editor 118) stored in template database 114. Template stateserver 112 may use the target ratio with information about the length ofprogramming media that has been presented or that will be presented byclient systems 102 to determine a length of advertising media thatresults in the ratio between programming media and advertising media forclient system 102 to approximate or equal the target ratio or such thata ratio between a total length of advertising media and the totalprogramming temporal length is substantially equal to the target ratio.The determined length is used, possibly along with other criteria, todetermine specific piece(s) of advertising media to be presented byclient system 102.

Template state server 112 may store various information related to theprogramming media and advertising media presented by client system 102to a user. Template state server 112 may access such information invarious ways such as, for example, receiving such information fromclient system 102. Template state server 112 may store such informationon a per-user or per-client system basis.

Referring to FIG. 4, for instance, template state server 112 maygenerate a Globally Unique Identifier (GUID) 402 for each user. Based oninformation obtained from the media client application executing onclient system 102, or otherwise obtained, template state server 112associates state information about the content consumed by a user with aparticular GUID. This state information may include, for example, anidentifier that specifically identifies each segment or portion ofprogramming or advertising media content presented to the user 404, thelocation in the website from which the segment or portion was obtained406, and the time the presentation of the segment or portion started andthe time the presentation was stopped 408 (or, alternatively, the amountof time the segment or portion was presented).

The information sent by client system 102 may be in the form of stateupdates. In such an implementation, the time 408 may be the time thatthe client system 102 sent the state update. The state updates mayidentify the state of the media client application (for example, whetherit is connecting to media to present the media, continuing to presentmedia, and stopping presentation of media). Some state may be inferredbased on subsequent state updates. For instance, it may be inferred thatthe media client application has stopped presenting media when asubsequent state update indicates that the media client application hasconnected to different media for presentation. When the information issent in the form of state updates, the type of status update 410 alsomay be stored and used by template state server 112, for example, todetermine the temporal length of programming media content and/oradvertising media content presented to the user.

Template database 114 stores templates, which outline the desired mediaexperiences for advertising media presented to the user or thecombination of advertising and programming media presented to the user.In general, the templates may specify target temporal ratio(s) for thewebsite, a ratio for collections of web pages, a ratio for particularweb pages, and/or ratios for other logical groupings of the content.

The target temporal ratio specified in a template may apply to acollection of web pages, may apply on a per web page basis, or ifcontent is broken into channels, may apply on a per channel basis, orthe ratio may be a global ratio that applies to all content consumed onthe website. For instance, there may be a template designed for the“current events” section of a website, and the template specifies onetarget temporal ratio for a “world news” sub-topic of current events andanother target temporal ratio for a “national news” sub-topic. Thus, asthe user, for example, consumes content in the “world news” section, theratio between advertising media and programming media is adjusted toapproximate or equal the target temporal ratio for the “world news”section, while the ratio is adjusted to approximate or equal the targettemporal ratio for the “national news” section as the user consumescontent from that section of the website. Alternatively, if the targettemporal ratio is a global ratio, then the ratio between programmingmedia and advertising media consumed site-wide is adjusted toapproximate or equal the target temporal ratio as the user consumescontent from various sections of the website. Different ratios also maybe set for different logical groupings of content.

Similarly, a template may be designed for the website, collections ofweb pages, a particular web page, channels, and/or other logicalgroupings of the content. For instance, a global template may bedesigned for a website. The global template indicates a desired mediaexperience and one or more ratios between advertising media andprogramming media that apply regardless of the location from which theprogramming media is selected. Alternatively, different templates may bedesigned for general topics or themes within the website from whichprogramming media can be selected (for example, a template for moviesweb page 212, a different template for action movies web page 212 a, anda different template for current events web page 216, etc.). Thetemplate for a topic or theme indicates the media experience and mayspecify one target ratio that applies to all sub-topics or sub-themes ormay specify different target ratios that apply to different sub-topicsor sub-themes. The template for a topic or theme is then used forselections from the general topic/theme web page and selections from thesub-topic/sub-theme web pages under the general topic/theme web page.Also, web page specific templates may be designed (for example, aspecific template may apply only to the alternative music web page 314a). There may be a combination of global and location specifictemplates. For example, the global template may act as a defaulttemplate for locations in the website for which a template is notspecifically designed.

In addition, there may be templates designed for different categories ofprogramming media, regardless of the location in the website from whichthe content may be selected. For instance, there may be a template forsports programming media and a template for headline news programmingmedia. Templates also may be designed for a combination of location andcategory of programming media. For example, there may be one templatefor sports programming media selected from a current events location ofthe website and a second template for sports programming media that isselected from a sports location of the website.

Templates also may be designed for other logical groupings. For example,templates may be designed based on which website or web page the contentis being requested from and based on who owns the programming mediacontent. An owner of programming media content may license such contentto another entity so that the other entity can provide access to thecontent from its corresponding website or websites. However, as part ofthe contractual relationship between the owner and the other entity, theowner may retain certain rights regarding the media experience that auser has when watching the programming media content from the otherentity's website(s). The owner may retain the rights to specify, forexample, when advertising media is presented and/or the ratio ofadvertising media to programming media. Thus, the owner of theprogramming media content may be the one who designs the templatespecifying these items for its programming media content that islicensed to the other entity and made available on the other entity'swebsite. Accordingly, the template designed by the owner could be usedwhen the licensed programming media content is selected from the otherentity's website.

Templates may be designed based on other factors as well. For example,templates may be designed based on whether the media client applicationaccesses programming media content and/or advertising media contentusing a broadband or narrowband connection.

For each template, there may be a single ratio that applies regardlessof the type of advertising media being presented, different ratios thatapply to different types of advertising media (for example, a ratio thatapplies to branding and a different ratio that applies toadvertisements), or one or more ratios that apply to one or moredifferent types of advertising media (for example, a ratio that appliesto branding and advertisements and a different ratio that applies topreviews).

Templates also may define variations of the ratio(s) over time for agiven logical grouping by being chained together such that the selectionof a template depends on the template selected previously for a user.For example, a first template may define a ratio for movies web page 212that applies regardless of the type of advertising media beingpresented, while a second template defines a different ratio. The firstand second templates then may be chained together such that the firsttime a user selects programming media from movies web page 212 the firsttemplate is requested and the second time the user selects programmingmedia from movies web page 212 the second template is requested.Alternatively, or additionally, a specific template may be used multipletimes before the next template in the chain is selected. In this manner,the ratio or ratios (if there are different ratios for different typesof advertising media) can be varied as a user selects programming media.The template state server 112 may track which templates were accessedpreviously by the user in order to effect the chaining of templates.

Template editor 118 allows a user to create and edit templates. FIGS.5A-5C show an example of interfaces for use with template editor 118along with examples of templates. Referring to FIG. 5A, an interface 500displays the hierarchical website locations 502 in a manner thatportrays the hierarchy of the website. When a user selects one of thelocations 502 (for example, the Music News location 502 a), a portion504 of the interface shows various sets of chained templates that applyto content requested from the selected website location (for example,Music News 502 a).

The examples shown in FIGS. 5A-5C correspond to an implementation inwhich sets of chained templates (where a set of chained templates maycontain a single template) are designed for a given location in thewebsite. The example shown has five sets of chained templates, aBroadband B set 504 a, a broadband set 504 b, a foo set 504 c, a longset 504 d, and a narrowband set 504 e. The set chosen for a particularselection of programming media content from that location may then bebased on any of the other factors above other than location. Forinstance, broadband set 504 b may be selected for users who access mediausing a broadband connection, while narrowband set 504 c may be selectedfor users who access media using a narrowband connection.

Portion 504 shows the templates contained in a set and how they arechained together. For example, long set 504 d contains the long templateand the narrowband template. This is shown by graphics 504 d-1 and 504d-2. As shown, arrows, such as arrows 504 d-3 and 504 d-4, show theconnections between the templates. Graphics 504 d-1 and 504 d-2 show howmany times the corresponding template is used before the next templatein the chain is used. Thus, for example, for long set 504 d, the longtemplate is used once, then the narrowband template is used twice, andthen the long template is used once, and so on.

Referring to FIG. 5B, an interface 510 shows what media content isincluded in the long template. Interface 510 includes a section 512 thatshows the name of the template. Interface 510 also includes a section514 for defining the number of times the template is used and forspecifying the next template in the chain. A section 516 allows a userto provide a description of the template.

Interface 510 has sections 518-528, each of which defines the type ofcontent to be shown. Each section 518-528 has a section 518 a-528 a thatallows the user to define the type of content and a section 518 b-528 bthat defines the length of time of the content. The order of thesections defines the order of the content.

Accordingly, for the long template shown in FIG. 5B, the following typesof content are shown in the following order: a channel intro (which is atype of branding), a preview, a pre-roll ad (that is, an advertisementthat is shown before the programming media content), the programmingmedia content selected, a post-roll ad (that is, an advertisement thatis shown after the programming media content), and a channel outro(which also is a type of branding).

Because the length of the content is defined in the template, the ratiobetween programming media content and advertising media content isdefined implicitly by the long template (in the example shown, it is a1:5 ratio). The length of the content, however, need not be specified inthe template.

Referring to FIG. 5C, an interface 530 for the narrowband template isshown. Similar to interface 510, interface 530 contains a section 532that displays the name of the template, a section 534 for defining thenumber of times the template is used and specifying the next template inthe chain, and a section 536 that allows a user to provide a descriptionof the template.

Interface 530 also contains sections 538-542, which define the type ofcontent to be shown for the narrowband template. Sections 538-542 alsohave a section 538 a-542 a that allows the user to define the type ofcontent and a section 518 b-528 b that defines the length of time of thecontent. Thus, for the narrowband template shown in FIG. 5C, thefollowing types of content are shown in the following order: a pre-rollad, the programming media content selected, and a channel outro. Thisresults in a ratio of 1:2.

Thus, when a user selects programming media content from the webpage (orwebpages) corresponding to the Music News topic 502 a of the website andthe long set 504 d is used, the first time the user selects a segment ofprogramming media content the long template is used to provide theappropriate advertising media content and programming media content.That is, when a user first selects a segment of programming mediacontent, the user will be shown a channel intro, a preview, a pre-rollad, the segment of programming media content selected, a post-roll ad,and a channel outro. The next two times the user selects a segment ofprogramming media content, the user will be shown a pre-roll ad, thesegment of selected programming media content, and a channel outro.

Referring again to FIG. 1, scheduler 116 selects particular pieces ofadvertising media to be presented by client system 102. To do so,scheduler 116 may store business rules regarding various advertisingcampaigns and execute software that evaluates those business rules todetermine particular advertising media segments that are to be presentedby client system 102. The business rules regarding an advertisingcampaign define the parameters under which associated advertising mediashould be presented, such as the timing that the advertising mediashould be presented (for example, at night or mid-afternoon), thepercentage of the population to whom the advertising media should bepresented, the frequency with which the advertising media should bepresented, and/or the geographic location(s) of the users to whom theadvertising media should be presented. Also, as described above,programming media content may be licensed from the owner of the contentto another entity. In such a situation, the contractual relationship mayspecify certain rights regarding the programming media content that isreflected by the business rules. For example, the contractualrelationship may specify the percentage of the other entity'sadvertising media that can be presented while the licensed programmingmedia content is presented versus the percentage of advertising mediathat belongs to the owner. For example, the contractual relationship mayspecify that 20% of the advertising media content presented may belongto the entity licensing the programming media content, while the other80% of advertising media content presented must belong to the owner ofthe programming media content.

Given general requirements for a piece of advertising media, such as thetype of advertising media (for example, branding or advertisement) andthe appropriate temporal length, scheduler 116 evaluates the variousbusiness rules, the types of different pieces of advertising media, andthe temporal lengths of different pieces of advertising media to selecta particular piece of advertising media that helps to satisfy both thevarious advertising campaigns and the general requirements.

Referring also to FIG. 6, in general, template state server 112,template database 114, and scheduler 116 implement process 600 so thatthe temporal ratio between programming media content and advertisingmedia content presented by client system 102 approximates or equals atarget temporal ratio. Process 600 includes template state server 112determining the total temporal length of one or more programming mediasegments previously and/or presently selected by a user for presentationby client system 102 (602). Programming media segments may be anyportion of programming media content presented by client system 102. Forinstance, a programming media segment may be a discrete piece ofprogramming media content that is provided in an on-demand mannerwhenever the segment is selected in a web page. As another example, aprogramming media segment may be a portion of a continuous media streampresented to the user.

Template state server 112 determines the total temporal length based on,for example, information passed to template state server 112 by clientsystem 102, state information tracked by template state server 112,and/or information regarding the programming media segment(s) stored ina database or other storage system. For instance, client system 102 maysend information to template state server 112 regarding the temporallengths of one or more programming media segments client system 102 haspresented within a defined time frame in the recent past (for example,within the last hour), or client system 102 may send informationregarding the total temporal length of one or more programming mediasegments that the client is going to present to the user in the future.Alternatively, for example, the client may send information to templatestate server 112 whenever client system 102 starts presenting and stopspresenting programming media segments. In this manner, template stateserver 112 is able to track the total temporal length of one or more ofthe programming media segments already presented. As anotheralternative, client system 102 may send an identification of theprogramming media segment(s) and template state server 112 may use theidentification to look up the temporal length of the programming mediasegment(s) in a database.

In some implementations, template state server 112 also may determinethe total temporal length of one or more advertising media segmentspreviously presented by client system 102 (603). In someimplementations, the ratio between programming media content andadvertising media content may be adjusted in an iterative fashion toapproximate or equal the target temporal ratio. In other words, thelength of the advertising media segment(s) needed to approximate orequal the target temporal ratio may be based on the previous ratio. Forexample, if programming media and advertising media has previously beenpresented in a ratio of 4:1 (4 minutes of programming media for everyminute of advertising media) and the target ratio is 5:1, an advertisingmedia segment may be selected that provides a ratio equal to or greaterthan 5:1 so that the ratio approximates 5:1 (assuming that anappropriate advertising media segment is not available at the time ofselection to make the ratio equal to 5:1). Similarly, the length of theadvertising media segment(s) needed may be based on the temporal lengthof the programming media segments that will be presented and theprevious ratio. In such implementations, the total temporal length ofone or more advertising media segments previously presented to the usermay be determined and used with the total temporal length of one or moreprogramming media segments to determine the temporal length of theadvertising media segment(s) needed to approximate or equal the targettemporal ratio.

Template state server 112 also accesses a target temporal ratio betweenprogramming media and advertising media (604). Template state server 112may determine the target temporal ratio by accessing the target temporalratio from a template stored in template database 114. In otherimplementations, template state server 112 may determine the targettemporal ratio, for example, by accessing a target temporal ratio sentto template state server 104 by client system 102. Template state server112 alternatively may determine the target temporal ratio bycalculating, looking up, or otherwise computing the target temporalratio based on information provided by client system 102, contained in atemplate, or stored by template state server 112. For example, atemplate may indicate that the target temporal ratio depends on the timeof day and how many programming media segments have been presented fromdifferent locations on the website (which may be stored by templatestate server 112). The template state server 112 would then evaluate thepertinent information to determine the appropriate target temporalratio.

Scheduler 116 selects one or more particular advertising media segmentsbased on the target temporal ratio accessed by the template state server112, the total temporal length of the programming media segment(s)selected, and, in some implementations, the total temporal length ofpreviously presented advertising and/or programming media segment(s)(606). To do so, for example, template state server 112 may determine atotal temporal length of one or more advertising media segments based onthe target temporal ratio, the total temporal length of the programmingmedia segment(s) selected, and, in some implementations, the totaltemporal length of previously presented advertising and/or programmingmedia segment(s). The determined total temporal length of advertisingmedia segment(s) provides a ratio between programming media andadvertising media presented by the client system 102 that approximatesor equals the target temporal ratio. Template state server 112 thencommunicates the determined total temporal length of advertising mediasegment(s) to scheduler 116. Scheduler 116 then may select one or moreparticular advertising media segments based on the determined totaltemporal length of advertising media segment(s).

The particular advertising media segment(s) selected by scheduler 116satisfies the business rules (described above) and has a total temporallength that matches the determined total temporal length. As with theprogramming media segment, advertising media segments may be any portionof advertising media content presented by client system 102. In general,however, advertising media segments are discrete pieces of advertisingmedia content that have a predefined temporal length. For instance, theadvertising media segment may be a 30-second video advertisement. Asanother example, an advertising media segment may be a branding elementthat is overlaid across programming media for 10 seconds.

In some implementations, the temporal lengths of programming mediasegments and advertising media segments may be set to uniform sizesdesigned to provide the target temporal ratios. In such implementations,the ratio between the programming media and advertising media presentedby a client system can normally be made to equal the target temporalratio.

For example, if advertising media segments are designed to have temporallengths that are integer multiples of a base temporal length (forexample, 30 seconds) and programming media segments also are designed tohave temporal lengths that are integer multiples of the base temporallength, then the ratio between advertising media and programming mediamay be able to equal the target ratio. In such a case, for instance, ifthe target ratio is 20 minutes of programming media for every 1 minuteof advertising media, then when one or more programming media segmentswith a total temporal time of 1 hour (60 minutes, which is a multiple of30 seconds) are presented, there also may be presented three one-minuteadvertising segments, or some other combination of 30-second,one-minute, two-minute, or three-minute advertising segments that have atotal temporal length of three minutes.

If the hour of programming media is made up of a single programmingmedia segment, then the advertising media segments may be presentedbefore the programming media segment is presented, after the programmingmedia segment is presented, or a combination of both. On the other hand,if the hour of programming media is made up of more than one programmingmedia segment, then the advertising media segments may be interspersedbefore, after, or throughout the hour of programming media by beingpresented before or after one or more of the multiple programming mediasegments, or may be presented before or after the hour of programmingmedia.

The above example can also be used to illustrate several differentimplementations of operation 602. If the ratio is designed to besatisfied every hour, then template state server 112 may determine thetemporal length of programming media that has been displayed in thecurrent hour. If the ratio is designed to be satisfied after everypresentation of programming media, then template state server 112 maydetermine the temporal length of programming media since the lastadvertising media was presented.

In other implementations, programming media segments and/or advertisingmedia segments may be different, non-uniform sizes. In this case,advertising media segments may be selected such that the current orfuture ratio is moved towards the target ratio so that over time theratio averages out to the target ratio, or, if an advertising mediasegment of appropriate length is available, so that the ratio is equalto the target ratio. For example, if programming media and advertisingmedia have previously been presented in a ratio of 4:1 (4 minutes ofprogramming media for every minute of advertising media) and the targetratio is 5:1, an advertising media segment may be selected that providesa ratio equal to or greater than 5:1 so that the ratio approximates 5:1(assuming that an appropriate advertising media segment is not availableat the time of selection to make the ratio equal to 5:1).

Once the advertising media segment(s) have been selected, template stateserver 112 enables the client system 102 to present the selectedadvertising media segment(s) (608). For instance, template state server112 may enable the client system 102 to play the one or more selectedadvertisement segments by providing the media client application withthe location of the one or more selected advertisement media segments atthe advertising media source 110, or other information that allows themedia client application to access the advertising media segment(s) atadvertising media source 110.

Alternatively, if template state server 112 has access to the selectedadvertising media segment(s), template state server 112 may retrieve thesegment(s) and send them directly to the media client application forpresentation. Template state server 112 may have access to the selectedadvertising media segment because template state server 112 may be ableto communicate across a network with a server or other computing deviceon which advertising media source 110 is hosted. Alternatively, templatestate server 112 may have access to the advertising media segment(s)because advertising media source 110 is hosted on the same computingdevice as template state server 112.

In some implementations, advertising media segments may be transferredto and stored on client system 102 prior to selection. In such animplementation, template state server 112 may enable client system 102to present the selected advertising media segment(s) by passinginformation to client system 102 that informs client system 102 of whichadvertising media segments stored on client system 102 to present.

More specifically, and with reference to FIG. 7, in one implementationclient system 102 sends a request for a media selection page to webserver 106 (702). The media page is, for example, a web page in ahierarchically designed website as described above and includesselections of programming media which a user of client system 102 canselect for presentation. Web server 106 returns the media page to clientsystem 102 (704), which presents the media page to the user using, forexample, a stand alone media client application or a web browser.

When a user selects one of the selections of programming media (706), amedia client application executing on client system 102 is provided witha playlist of media content. For example, the user selection may causethe media client application to request the playlist from web server 106or other server (708-712). Alternatively, the selection may invoke aclient side script or program embedded in the webpage. The script orprogram then may invoke the media client application and provide theplaylist to the media client application (708).

The playlist provides the media client application with information onthe order in which advertising and programming media should be presentedand information on how to retrieve or request the media. For instance,the playlist may include a list of URLs, where some of the URLscorrespond to advertising media and others to programming media, andwhere the URLs are provided to the media client in the order in whichthe programming and advertising media is to be presented. The URLscorresponding to the programming media direct the media clientapplication to request the programming media from programming mediasource 108, and the URLs corresponding to advertising media direct themedia client application to request advertising media from templatestate server 112. The URLs corresponding to the advertising media mayinclude URLs for different types of advertising media content, such as,for example, previews, branding, or advertisements, depending on theparticular media experience desired.

As an example, a playlist may include URLs that result in the mediaclient requesting and presenting the following media in the followingorder: (1) a branding media segment; (2) a preview media segment; (3) aprogramming media segment corresponding to the selection made by theuser; and (4) and an advertisement media segment. The URL for theprogramming media results in the media client application sending arequest to programming media source 108 for the programming mediasegment corresponding to the selection made by the user. The URLs forthe different advertising media result in the media client applicationsending a request to template state server 112 for an advertising mediasegment of the type to which the URL corresponds. For example, the URLsfor the advertising media may point to a resource, such as a commongateway interface (cgi) script or other executable program, on templatestate server 112. Such URLs may include URL-encoded parameters to bepassed to the resource, where the parameters indicate information suchas the type of advertising media or other information as describedbelow.

Accordingly, for example, when the media client application beginsprocessing the exemplary playlist, the media client application firstsends a request for a branding media segment to template state server112 (714). The request indicates that a branding media segment is neededfor presentation. The request also may, for example, indicate thelocation in the hierarchical website from which the programming mediawas selected (for example, the web page from which the programming mediawas selected), the particular programming media selected, and/or acategory of the programming media selected.

When template state server 112 receives the request from the mediaclient application, template state server 112 determines the appropriatetemplate (716). For instance, as described above, templates may applydepending on the location in the website from which the programmingmedia was selected, the particular programming media selected, the ownerof the particular programming media selected, and/or the category of theparticular programming media. The particular template also may depend onwhich template was accessed previously for the user.

After determining the appropriate template, template state server 112requests the appropriate template from template database 114 (718) andtemplate database 114 returns the requested template (720). The returnedtemplate informs the template state server 112 of the target temporalratio. Template state server 112 uses the indicated target temporalratio, the total temporal length of one or more programming mediasegments that have been presented within a defined time frame in therecent past, and the total temporal length of one or more programmingmedia segments that have been presented within a defined time frame inthe recent past to determine the temporal length of the branding mediasegment that approaches or equals the target temporal ratio (722).Alternatively, template state server 112 may use the target temporalratio and the temporal length of the programming media segment selectedby the user, in addition to, or instead of, the total temporal length ofthe programming media segment(s) previously shown, to determine thetemporal length of the branding media segment needed (722).

The total temporal length of one or more programming media segments thathave been presented within a defined time frame in the recent past maybe available to template state server 112 because the media clientapplication tracks the amount of time programming media is presented andsends this with the request for branding. Alternatively, oradditionally, template state server 112 may have such access by trackingwhen programming media is presented by client system 102 based onperiodic or aperiodic state updates (636) sent by client system 102 totemplate state server 112. The state updates may indicate the start of apresentation of programming media, the end of such a presentation,and/or the programming media that is being presented. For instance,after client system 102 retrieves a programming media segment forpresentation, client system 102 may send a status update to templatestate server 112 indicating that client system 102 is beginning thepresentation of programming media. Then, during the presentation of theprogramming media, client system 102 may send one or more status updatesindicating that the programming media is still being presented. Finally,when the presentation of the programming media segment is completed,client system 102 may send a status update that indicates the end of thepresentation.

After determining the temporal criteria for the branding segment (722),template state server 112 then sends to scheduler 116 a request for theselection of an advertising media segment (724). The request includes anindication that a branding media segment is needed and an indication ofthe needed temporal length of the branding media segment.

Upon receiving the request for a selection, scheduler 116 selects anappropriate branding media segment that satisfies both the businessrules and the needed temporal length (726). Scheduler 116 then returnsthe location, for example a URL, for the branding media segment inadvertising media source 110 (728).

The URL is returned by template state server 112 to client system 102(730). The media client application executing on client system 102 thenuses the URL to request the branding media segment from the advertisingmedia source 110 (732), which returns the branding media segment toclient system 102 for presentation (734).

After the client system 102 presents the branding media element, themedia client application processes the playlist URL for the previewmedia segment. As a result, the above-described process (714-734) isrepeated for the preview media segment.

Once the preview media segment is presented by client system 102, theplaylist URL for the programming media segment is processed. Thisresults in the media client application requesting the programming mediasegment from the programming media source 108 (732) and the programmingmedia source 108 returning the programming media segment to the clientsystem 102 for presentation. Operations 714-730 are not performed inconjunction with processing the playlist URL for the programming mediasegments.

Lastly, after the programming media segment has been presented, themedia client application processes the playlist URL for theadvertisement media segment. Similar to the playlist URLs for otheradvertising media segments, this results in the above described processfor the branding media segment (14-734) being performed for theadvertisement media segment.

Referring to FIG. 8, in another implementation, the template stateserver 112 provides the client application with the playlist, either allat once, or one URL at a time. Client system 102 sends a request for amedia selection page (702) to web server 106. However, when a userselects one of the selections of programming media (706), the mediaclient application sends a request for media to template state server112 (802), rather than obtaining a playlist from the server 106 or aclient-side script or program.

When template state server 112 receives the request from the mediaclient application, template state server 112 determines the appropriatetemplate (716). After determining the appropriate template, templatestate server 112 requests the appropriate template from templatedatabase 114 (718) and template database 114 returns the requestedtemplate (720). The requested template indicates the types of media tobe presented, the order of the types of media, and the target temporalratio(s) between programming media and advertising media.

As an example, the template may indicate the following order: (1) abranding media segment; (2) the selected programming media segment; and(3) an advertisement media segment. The template may indicate the targettemporal ratio(s) explicitly. For instance, the template may indicatethat the target temporal ratio for the branding media segment is 1:60and that the target temporal ratio for the advertisement media segmentis 1:20. An explicit ratio may be used when the template does notcorrespond to programming media segments of a set temporal length. Forexample, the template may be designed for the movies web page 212 andthe movies web page 212 contains selections for programming media ofvarious temporal lengths that are not known a priori. In this situation,template state server 112 may access a database to determine thetemporal length of the programming media segment selected based on anindication of the selected programming media contained in the request(802) from the client system.

Once the template state server 112 determines the temporal length of theselected programming media, the template state server 112 uses thetarget temporal ratio(s) to determine the needed length of theadvertising media segments. For the foregoing exemplary template, if theprogramming media segment has a temporal length of thirty minutes, thetemplate state server 112 would determine that the branding mediasegment needs to be thirty seconds, while the advertising media segmentneeds to be one and a half minutes.

Alternatively, the template may indicate the target temporal ratio(s)implicitly by indicating the temporal length of the advertising segments(that is, the branding media segment and the advertisement mediasegment). This may be done when the template does correspond toprogramming media segments of set length. For example, the template maybe designed for the music web page 214 and programming media segmentsavailable on the music web page 214 all have a set length, for examplefour minutes. In this case, the template may indicate that the brandingmedia segment needs to be five seconds and the advertising media segmentneeds to be one minute to establish a target temporal ratio of 1:48 forbranding and 1:4 for advertisements.

Thus, template state server 112 either explicitly or implicitlydetermines the temporal criteria for the advertising media segmentsindicated in the template (804), which for the exemplary template aboveis the branding media segment and the advertisement media segment. Afterdetermining the temporal criteria for the advertising media segments(804), template state server 112 then sends to scheduler 116 a requestfor the advertising media segments (806). The request includes anindication of the types of advertising media segments needed and thecorresponding temporal lengths needed. For instance, for the exemplarytemplate described above, the request includes (1) an indication that abranding media segment is needed and an indication of the neededtemporal length of the branding media segment; and (2) and indicationthat an advertisement media segment is needed and an indication of theneeded temporal length for the advertisement media segment.

Upon receiving the request for a selection, scheduler 116 selects anappropriate branding media segment and an appropriate advertisementmedia segment that satisfies both the business rules and the neededtemporal lengths (808). Scheduler 116 then returns to the template stateserver 112 the locations, for example URLs, or other identification ofthe selected advertising media segments in advertising media source 110(810). For the exemplary template, scheduler 116 returns the URLs forthe selected branding media segment and the selected advertising mediasegment.

Template state server 112 also obtains the location (for example URL) ofthe programming media segment selected by the user. Template stateserver 112 obtains the URL, for example, by querying a database based onan indication of the selected programming media contained in the request(802) from the client system 102. Template state server 112 arranges theURLs into a playlist that contains the URLs for the branding mediasegment, the programming media segment, and the advertisement mediasegment in the order indicated by the template.

Template state server 112 then returns the playlist to the media clientapplication (812). Based on the playlist, the media client applicationthen requests (732) the media segments from the appropriate locations inmedia sources 108 and 110. The media sources 108 and 110 return (734)the media segments requested, which are presented by the client system.

Thus, for the playlist based on the exemplary template, the media clientapplication executing on client system 102 uses the URL for the brandingmedia segment to request the branding media segment from the advertisingmedia source 110 (732), which returns the branding media segment toclient system 102 for presentation (734).

After the client system 102 presents the branding media segment, themedia client application processes the URL for the selected programmingmedia segment. As a result, the media client application requests (732)the selected programming media segment from programming media source110, which returns (734) the selected programming media segment to themedia client application for presentation. Once the programming mediasegment is presented by client system 102, the URL for the advertisingmedia segment is processed. This results in the media client applicationrequesting (732) the advertising media segment from the advertisingmedia source 110 and the advertising media source 110 returning theadvertising media segment to the client system 102 for presentation(734).

In a modification of the implementation described with respect to FIG.8, template state server 112 may send the URLs for each of the mediasegments one at a time, with the media client application constructed tosend a state change or request the next media segment when the mediaclient application has completed presenting the previous media segment.That is, template state server 112 may send the URL for the first mediasegment, which the media client application retrieves and presents.After the media segment is presented, the media client applicationrequests the next media segment from template state server 112 or sendsan indication that the presentation has stopped (or is about to stop)and awaits instructions from the template state server 112. Templatestate server 112 then sends the URL for the next media segment, alongwith instructions to present the media segment if needed (that is, ifthe media client application is waiting for specific instructions).After the last media segment is presented, template state server 112informs the media client application that no more media segments need tobe presented.

In such an implementation, template state server 112 may requestselection of all the advertising media segments from scheduler 116 atone time, and then send the appropriate URL after receiving a request orother communication from the media client application. Alternatively,template state server 112 may request selection of the advertising mediasegments one by one as template state server 112 receives a request orother communication from the media client application.

The techniques described above are not limited to any particularhardware or software configuration. Rather, they may be implementedusing hardware, software, or a combination of both. The methods andprocesses described may be implemented as computer programs that areexecuted on programmable computers comprising at least one processor andat least one data storage system. The programs may be implemented in ahigh-level programming language and may also be implemented in assemblyor other lower level languages, if desired.

Any such program will typically be stored on a computer-usable storagemedium or device (for example, CD-Rom, RAM, or magnetic disk). When readinto the processor of the computer and executed, the instructions of theprogram cause the programmable computer to carry out the variousoperations described above.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. For example, whilethe foregoing has described the use the HTTP protocol and HTML, otherstandard or proprietary protocols may alternatively be used.

In addition, while the foregoing has described a user selectingprogramming media for presentation by explicitly selecting specificprogramming media from a web page, other implementations may include theuser implicitly selecting the specific programming media through a webpage or other interface. For example, the specific programming mediapresented to a user may be selected based on user preferences. The userpreferences may be stored and, when the user selects a channel or otherlogical grouping of programming media, the specific programming mediapresented to the user is determined (for example, by the channel or by aclient application executing on the user's system) based on the userpreferences. In a one implementation, the user may select a channel, forexample, by selecting a hyperlink for a channel from a web-page. Inanother implementation, such as a video-on-demand implementation whereprogramming media is displayed on a television and transmitted, e.g., bya cable television network, the user may select a channel on thetelevision. In such implementations, the user implicitly selects thespecific programming media by selecting the channel, and the totaltemporal length of the programming media presented may depend on theamount of time the user continues to have programming media on thechannel presented.

Also, some or all of the functionality of template state server 112,scheduler 116, and/or template database 114 may be implemented in clientsystem 102. For example, in one implementation, client system 102 maydownload programming media and advertising media prior to presentationand be portable such that, when the programming media is presented,client system 102 is unable to communicate through network 104. In suchan implementation, some or all of the functionality of template stateserver 112, scheduler 116, and/or template database 114 may beimplemented in client system 102 so as to help maintain a desired targetratio between the programming media presented and the advertising mediapresented.

Furthermore, elements of one or more implementations may be combined,deleted, added, or modified to form further implementations.Accordingly, other implementations are within the scope of the followingclaims.

1. A computer-implemented method for selecting advertising content, themethod comprising: receiving, by at least one computer processor, anindication of a user selection of a location within a website, thewebsite location providing access to one or more segments of electroniccontent for presentation by a client system; determining, by the atleast one processor, a total programming length of the one or moresegments of electronic content provided at the selected websitelocation; accessing, by the at least one processor, a template databasestoring a plurality of templates that correspond to locations within oneor more websites and that define ratios between total programming lengthof electronic content and advertising content length, wherein the ratiosvary among the templates and corresponding website locations; searching,by the processor, the template database to identify one of the pluralityof templates, the identified template corresponding to the selectedwebsite location and defining a target ratio between a total programminglength of the electronic content provided by the selected websitelocation and an advertising content length; determining, by the at leastone processor, an advertising content length for the one or moresegments of electronic content based on the determined total programminglength of the one or more segments of electronic content and on thetarget ratio of the template corresponding to the selected websitelocation; selecting one or more advertising content segments based onthe determined advertising content length; and enabling, by the at leastone processor, the client system to present to the user the selected oneor more advertising content segments.
 2. The method of claim 1, whereindetermining the advertising content length for one or more segments ofelectronic content comprises determining the advertising content lengthsuch that a ratio between the determined advertising content length andthe determined total programming length of the one or more segments ofelectronic content is substantially equal to the target ratio.
 3. Themethod of claim 1, wherein determining the total programming length ofthe one or more segments of electronic content comprises: receivingstate information from the client system; and tracking lengths of theone or more segments of electronic content based on the stateinformation.
 4. The method of claim 1, further comprising identifyingthe template based on one or more factors selected from a groupconsisting of an identification of the one or more segments ofelectronic content, an owner of the one or more segments of electroniccontent, a category of the one or more segments of electronic content,time of day, and a previously accessed template.
 5. The method of claim1, further comprising identifying the template based on a combination ofa category of the one or more segments of electronic content.
 6. Themethod of claim 1, further comprising identifying the template based ona combination of an identification of an owner of the one or moresegments of electronic content and on the website location.
 7. Themethod of claim 6, wherein the website location comprises a hierarchicallocation on the website.
 8. The method of claim 1, wherein determiningthe total programming length of the one or more segments of electroniccontent comprises receiving information from the client system regardinga length of electronic content the client system has presented within apast time period.
 9. The method of claim 1, wherein determining thetotal programming length of the one or more segments of electroniccontent comprises receiving information from the client system regardinga length of electronic content that will be presented by the clientsystem during a future time period.
 10. The method of claim 1, whereinselecting the one or more advertising content segments comprisesselecting the one or more advertising content segments based further ona set of business rules regarding at least one advertising campaign. 11.The method of claim 1, wherein enabling the client system to present tothe user the selected one or more advertising content segments comprisesproviding the client system with information that allows the clientsystem to retrieve and present the selected one or more advertisingcontent segments.
 12. The method of claim 11, wherein the informationcomprises location information for the selected one or more advertisingcontent segments.
 13. The method of claim 1, wherein enabling the clientsystem to present to the user the selected one or more advertising mediasegments comprises: retrieving the selected one or more advertisingcontent segments; and transmitting the retrieved one or more advertisingcontent segments to the client system.
 14. The method of claim 1,wherein enabling the client system to present to the user the selectedone or more selected advertising content segments comprises enabling theclient system to present the selected one or more selected advertisingcontent segments such that the client system presents the selected oneor more advertising content segments and the one or more segments ofelectronic content in a sequential manner.
 15. The method of claim 1,wherein the determining of the total programming length of the one ormore segments of electronic content is performed after a user of theclient system has selected the website location.
 16. The method of claim1, wherein at least one of the selected advertising content segmentscomprises an advertising content segment selected from a groupconsisting of previews, teasers, branding, and advertisements.
 17. Acomputer-readable storage medium storing a computer program which, whenexecuted by a computer, causes the computer to perform a method forselecting advertising content, the method comprising: receiving anindication of a selection of a location within a website, the websitelocation providing access to one or more segments of electronic contentfor presentation by client systems; determining a total programminglength of the one or more segments of electronic content provided at thewebsite location; accessing a template database storing a plurality oftemplates that correspond to locations within one or more websites andthat define ratios between total programming length of electroniccontent and advertising content length, wherein the ratios vary amongthe templates and corresponding website locations; searching thetemplate database to identify one of the plurality of templates, theidentified template corresponding to the selected website location anddefining a target ratio between a total programming length of theelectronic content provided by the selected website location and anadvertising content length; determining an advertising content lengthfor the one or more segments of electronic content based on thedetermined total programming length of the one or more segments ofelectronic content and on the target ratio of the template correspondingto the selected website location; selecting one or more advertisingcontent segments based on the determined advertising content length; andenabling the client system to present to the user the selected one ormore selected advertising content segments.
 18. A computer-implementedmethod of providing programming audio-visual content and advertisingaudio-visual content, the method comprising: receiving, by at least onecomputer processor, a selection of a location within a website, thewebsite location providing access to one or more segments of electroniccontent for presentation on a client system; determining, by the atleast one processor, a total programming length of the one or moresegments of electronic content; accessing, by the at least oneprocessor, a template database storing a plurality of templates thatcorrespond to locations within one or more websites and that defineratios between total programming length of electronic content andadvertising length, wherein the ratios vary among the templates andcorresponding website locations; searching, by the at least oneprocessor, the database to identify one of the plurality of templatesdefining a target ratio between a total programming length of theelectronic content provided by the selected website location and anadvertising content length; determining, by the at least one processoran advertising content length for the one or more segments of electroniccontent based on the determined total programming length of the one ormore segments of electronic content and on the target ratio of thetemplate corresponding to the selected website location; selecting oneor more advertising audio-visual content segments having, either aloneor in combination with advertising audio-visual segments contentpreviously presented by the client system, the determined advertisingcontent length; and enabling, by the at least one processor, the clientsystem to present the selected one or more advertising content segmentssuch that the client system presents the selected one or more selectedadvertising content segments and the one or more segments of electroniccontent in a sequential manner.
 19. A computer-implemented method forselecting advertising content, the method comprising: receiving, by atleast one computer processor, an indication of a selection of a locationwithin a website, the website location providing access to one or moresegments of electronic content for access by a client system over anetwork; determining, by the at least one processor, a total programminglength of the one or more segments of electronic content provided at thewebsite location; accessing, by the at least one processor, a templatedatabase storing a plurality of templates that correspond to locationswithin one or more websites and that define ratios between totalprogramming length of electronic content and advertising content length;searching, by the at least one processor, the template database toidentify one of the plurality of templates, the identified templatecorresponding to a category of the one or more segments of electroniccontent provided at the selected website location and defining a targetratio between a total programming length of the electronic contentprovided by the selected website location and an advertising contentlength associated with the category; determining, by the at least oneprocessor, an advertising content length for the one or more segments ofelectronic content based on the determined total programming length ofthe one or more segments of electronic content and on the target ratioof the template corresponding to the category; and selecting one or moreadvertising content segments having a total length corresponding to thedetermined advertising content length.